// 对axios进行2次封装
import axios from "axios";

//引入显示进度条插件（引入的对象中，start：进度条开始 done:进度条结束）
import nprogress from "nprogress";
// 引入进度条样式
import 'nprogress/nprogress.css';


//1、 利用axios对象的方法create,区创建一个axios实例
///2、request就是axios，这里简单配置一下
const requests=axios.create({
  // 基础路径，请求时，路径中会出现api
  baseURL:'/mock',
  // 请求超时时间
  timeout:5000,
});

// 请求拦截器，（在发请求之前，请求拦截器可以检测到，可以在请求发出去之前做一些事情）
requests.interceptors.request.use((config)=>{
// cpnfig:配置对象，对象里有一个属性：headers请求头
// 进度条开始

nprogress.start()
  return config
})

// 响应拦截器
requests.interceptors.response.use(
(res)=>{
//成功的回调函数:服务器相应数据回来以后，响应拦截器可以检测到，可以做一些事情 
//进度条结束
nprogress.done()
return res.data
},(error)=>{
  //响应失败的回调函数
return Promise.reject(new Error('faile'))

})

//將封裝的axios方法对外暴露
export default requests